<?php
/**
 ***** 扶摇而上、抱守本真 ******
 * @author Dana
 * @Date 2021/6/30
 */

function build_query($db,$key_field,$fields,$table){
    $values = [];
    if(!empty($_POST[$key_field])){
        $update_fields = [];
        foreach ($fields as $field){
            // 假设数据来自一个表单
            $update_fields[] = "$field = ?";
            $values[] = $_POST[$field];
        }
        // 将键字段的值增加到 $values 数组
        $values[] = $_POST[$key_field];
        $st = $db->prepare("update $table set ".implode(',',$update_fields) .
        "where $key_field = ?");
    }else{
        // 为 values 提供一个初始的唯一ID
        // 如果你的数据库设置为会自动生成这个值，则使用null
        $values[] = null;
        $placeholders = ['?'];
        foreach ($fields as $field){
            // 每个字段一个占位符
            $placeholders[] = '?';
            // 假设数据来自一个表单
            $values[] = $_POST[$field];
        }
        $st = $db->prepare("insert into $table ($key_field,".implode(',',$fields).
            ') values('.implode(',',$placeholders).')');
    }

    $st->execute($values);
    return $st;
}